有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

SwingJavaJLabel。setText()方法重载时不使用字符串

在jLabel组件中,假设我有这些代码

JLabel jLabel = new JLabel();
jLabel.setText( 123 ) ;

它会产生错误。但是写这个,

jLabel.setText( 123 + "" ) ;

强制int部分成为字符串。但我不认为这样写int是个好主意!此方法是否有重载的同级项而不是字符串


共 (2) 个答案

  1. # 1 楼答案

    编译器是正确的。您正在将一个数字传递给需要该字符串的方法。第二种方法工作的原因是jvm将数字和字符串相加,返回一个字符串,这就是它工作的原因。你的另一个选择是做一些整数。toString(123)

  2. # 2 楼答案

    在这里你做不了什么,setText只接受一个String参数。或者,如果你觉得这更具可读性,你可以做jLabel.setText(Integer.toString(123))

    至于123 + ""部分,每当您添加一些变量,并且其中至少有一个是String,编译器将自动调用其他变量的toString,并将所有字符串连接起来somevar + ""(空字符串)是调用somevar.toString()的一种快速方法